package com.jack.payment.entity.generate.payment;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "调用支付数据统计")
public class PaymentAttachModel implements Serializable {
    @Schema(description = "订单号")
    private String orderNo;
    @Schema(description = "渠道号")
    private String channelNo;
    @Schema(description = "渠道")
    private String channel;
    @Schema(description = "调用的用户")
    private String user;
    @Schema(description = "发起支付时的金额")
    private BigDecimal amount;
    @Schema(description = "实际支付金额")
    private BigDecimal actualAmount;
    @Schema(description = "申请退款金额")
    private BigDecimal applyRefundAmount;
    @Schema(description = "实际退款金额")
    private BigDecimal refundAmount;
    @Schema(description = "支付时附加数据")
    private String attach;
    @Schema(description = "退款时可携带的数据")
    private String refundAttach;
    @Schema(description = "状态[1: 待支付 2: 已支付 3: 退款中 4:已退款]")
    private Integer status;
    @Schema(description = "调用者方的 回调地址")
    private String webhook;
    @Schema(description = "退款回调地址, 用户方自定义")
    private String refundWebhook;
    @Schema(description = "支付时使用的平台支付 [web, qrcode, app, applet]")
    private String payPlatform;
    @Schema(description = "支付时所选用的支付环境 [test, prod]")
    private String paymentEnv;
    @Schema(description = "支付成功时, 关联的队列id")
    private String paymentMqId;
    @Schema(description = "退款时, 关联的队列id")
    private String refundMqId;
    @Schema(description = "支付请求时间")
    private Long requestTime;
    @Schema(description = "支付成功时间")
    private Long successTime;
    @Schema(description = "申请支付时间")
    private Long applyRefundTime;
    @Schema(description = "退款时间")
    private Long refundTime;
    @Schema(description = "支付方信息")
    private String payerContent;
    @Schema(description = "携带的支付标题或描述")
    private String describe;
    @Schema(description = "货币")
    private Integer currency;
    @Schema(description = "apiKey")
    private String apiKey;
    @Schema(description = "结束时间")
    private Long endTime;
}

